約 1,562,134 件
https://w.atwiki.jp/hisam/pages/46.html
Ruby 島根県のホームページ管理システムがOSSとして無償公開,地元企業がRubyで開発 もどる [ スポンサード リンク ] は押さないようにしよう。 押すのは自己責任で。
https://w.atwiki.jp/yuyuyu345/pages/13.html
ruby コマンド system("ruby objectlist_getting.rb")
https://w.atwiki.jp/shisaku0017/pages/199.html
Ruby 対応しているフリーウェア一覧 Gruff graphing library for Ruby
https://w.atwiki.jp/multiplication/pages/24.html
(このページのPDF版はこちら→ 掛け算順序固定方式の正当性検証チャート このチャートは、掛け算順序問題の議論の筋道を分かりやすくするために、開米瑞浩@kmic67が作成したものです。 内容の大半は、出発点であったokwaveでのある質問に関する temmusu_nagoya さんの回答を整理し要点をまとめたものですが、現在ではその他の方の調査結果、意見等も組み込みつつあります。 この内容に問題がある場合、あるいは「この論点も載せて欲しい」「この調査結果にリンクをしてほしい」といった提案などはtwitter #掛算 タグつきで @kmic67 へリプライをください。 以下、本文 imageプラグインエラー ご指定のURLはサポートしていません。png, jpg, gif などの画像URLを指定してください。 imageプラグインエラー ご指定のURLはサポートしていません。png, jpg, gif などの画像URLを指定してください。 というわけで、C4については確かにそう書かれているが、C2、C3については根拠がない(メタメタさん調査結果1,2,3)。 しかし、一般常識と異なる教育を行うならC4だけでは根拠としては不十分。議論の筋道としてはC1が成り立たなければ意味がない。C1が成り立つならばその後のC2~C4も正当性を主張しうるが、そもそもC1が成り立たないならそれ以後はすべて否定されるもの。 そしてそのC1の効果も実際には疑わしい。 imageプラグインエラー ご指定のURLはサポートしていません。png, jpg, gif などの画像URLを指定してください。 (上図の右下にある、水色・点線枠の2つの項目は、temmusu_nagoyaさん発言ではなく、当ページまとめ人の開米@kmic67が書きました)
https://w.atwiki.jp/jasagiri/pages/35.html
認定制度 http //www.infoq.com/jp/articles/rubyexam http //projects.netlab.jp/ruby-test/index.html http //itpro.nikkeibp.co.jp/article/COLUMN/20080115/291042/ http //blog.champierre.com/archives/723 http //d.hatena.ne.jp/yuichi_katahira/20090406/1239025810 rubygems GitHubを新しいレポジトリに追加する。 gem sources -a http //gems.github.com/ リファクタリング 練習問題 http //www.oiax.jp/rails/ruby-ex/refactoring_1.html RFactor http //github.com/fabiokung/rfactor/tree/master http //www.infoq.com/jp/news/2009/03/rfactor reek http //github.com/kevinrutherford/reek/tree/master Rufus http //rufus.rubyforge.org/rufus-treechecker/files/README_txt.html http //www.happiese.com/system/refactoring.html http //www.confrage.com/eclipse/ rubigen http //rubigen.rubyforge.org/
https://w.atwiki.jp/utauuuta/pages/1183.html
【登録タグ r へっどふぉん 千音ルリ 曲】 作詞:へっどふぉん 作曲:へっどふぉん 編曲:へっどふぉん 唄:千音ルリ 曲紹介 音楽コンテストコミュニティサイト「クレオフーガ」が開催した「Rubyイメージソングコンテスト」応募作品。 「Ruby」とはプログラミング言語の一種。 【どんなプログラムでも、メリットデメリットがある。でもあきらめずに改善を重ねてよくなっていく】という意味を込めた歌。 歌詞 いろんな可能性 無限に広がった 世界生まれ 動き出した 謎を解く術を 助ける自然体 未知の革命 動かす心を その繰り返し 働かすうち 文字は見えない いつも 強がって すぐ立ち上がる 「完成じゃない」と 言うんだ キミの色 ボクの色 それぞれ違っても 役目はある 動けばいい 季節 時は過ぎ 幾度の困難を 乗り越えれる? いろんな可能性 無限に広がった 世界生まれ 動き出した 謎を解く術を 助ける自然体 未知の革命 夢さえ みる すべて 世界さえ 捨てられた紋様 いろんな可能性 無限に広がった 世界生まれ 動き出した 謎を解く術を 助ける自然体 未知の革命 光を映し出す画面に導かれ 覗き込んだ僕の世界 キミといつまでも 輝き続けてく Rubyを持つ (PIAPROより転載、一部動画内歌詞に合わせて編集) コメント 名前 コメント
https://w.atwiki.jp/hmiku/pages/33420.html
【登録タグ 曖昧さ回避】 曖昧さ回避のためのページ 合成音声Ruby/合成音声 Clean Tearsの曲Ruby/Clean Tears へっどふぉんの曲Ruby/へっどふぉん 曖昧さ回避について 曖昧さ回避は、同名のページが複数存在してしまう場合にのみ行います。同名のページは同時に存在できないため、当該名は「曖昧さ回避」という入口にして個々のページはページ名を少し変えて両立させることになります。 【既存のページ】は「ページ名の変更」で移動してください。曖昧さ回避を【既存のページ】に上書きするのはやめてください。「〇〇」という曲のページを「〇〇/作り手」等に移動する場合にコピペはしないでください。 曖昧さ回避作成時は「曖昧さ回避の追加の仕方」を参照してください。 曖昧さ回避依頼はこちら→修正依頼/曖昧さ回避追加依頼
https://w.atwiki.jp/sawa2/pages/19.html
ruby 日本語環境 好きな文字コードでrubyのコードを実行するには。 YAML Railsなどを使っていても何かと使えるYAMLに関するメモ Vpim 携帯電話のアドレス帳などのデータであるVCFファイルを読み込むためのメモ
https://w.atwiki.jp/opentfc/pages/86.html
テキストファイルの各行から,正規表現にマッチした行を取り除いて表示する 正規表現 Ruby 配列あれこれ 簡易版wcコマンド(例外処理rescure) ディレクトリとファイルの一覧を配列で取得 モジュールを作る テキストデータを1行ずつ読み込んで表示する テキストデータの行頭と行末に文字列を追加する テキストファイルの各行から,正規表現にマッチした行を取り除いて表示する マッチした部分だけを取り除くのではなく,行ごと取り除く filename = ARGV[0] file = open(filename) while text = file.gets if (text =~ /\#\+BEGIN/) || (text =~ /\#\+END/) next else print text end end 正規表現 Ruby 配列あれこれ a[n]からa[m]まで a[n..m] a[n]からa[m-1]まで a[n...m] a[n]からlen個取り出す a[n, len] 要素を挿入 インデクスnから任意の個数挿入 a[n, 0] a = [0,1,2,3,4,5] = [0, 1, 2, 3, 4, 5] a[2, 0] = ["a", "b"] = ["a", "b"] a = [0, 1, "a", "b", 2, 3, 4, 5] 置き換えもできる。 簡易版wcコマンド(例外処理rescure) ## 簡易版wcコマンド ltotal = 0 # 行数の合計 wtotal = 0 # 単語数の合計 ctotal = 0 # 文字数の合計 ARGV.each do |file| begin input = open(file) l, w, c = 0, 0, 0 while line = input.gets l += 1 c += line.size line.sub!(/^\s+/, "") # 行頭の空白を削除 ary = line.split(/\s+/) # 空白文字で分解する w += ary.size end input.close printf("%8d %8d %8d %s\n", l, w, c, file) # 出力の整形 ltotal += l wtotal += w ctotal += c rescue = ex print ex.message, "\n" # 例外のメッセージを出力 end end printf("%8d %8d %8d %s\n", ltotal, wtotal, ctotal, "total") ディレクトリとファイルの一覧を配列で取得 シェルのワイルドカード風のパターンマッチ Dir.glob("*.html") パターン 意味 * 任意の文字列 ** 「*/」の任意の回数の繰り返し ? 任意の一文字 [abc] a, b, cのいずれか一文字 [^abc] a, b, c以外の一文字 [a-z] ASCII文字のaからzのいずれか {foo,bar,baz} foo,bar,bazのいずれか sortする (.cか.hのいずれかを取得して) Dir.glob("*.[ch]").sort モジュールを作る module モジュール名 モジュールの定義 end 例 module HelloModule Version = "1.0" # 定数の定義 def hello(name) # メソッドの定義 print "Hello, ", name, ".\n" end module_function hello # helloをモジュール関数として公開する end ## includeしない p HelloModule Version # 定数の呼び出し HelloModule.hello("Alice") # メソッドの呼び出し ## includeする include HelloModule p Version hello("Alice") テキストデータを1行ずつ読み込んで表示する filename = ARGV[0] file = open(filename) while text = file.gets print text end file.close file.each_line do |line| print line end とかでもいける テキストデータの行頭と行末に文字列を追加する テキストデータを読み込み行末に文字を追加するには,改行文字を取り除かないといけない file = open(ARGV[0], "r") while text = file.gets text = text.chomp # 改行文字を取り除く print "(",text,")\n" end file.close 以下未整理 1. コマンドラインからのデータ入力 Ruby 2. 便利なオブジェクト Ruby 4. オブジェクトと変数・定数 Ruby 7. メソッド Ruby 8. クラスとモジュール Ruby 繰り返し for文 一般的な構文 for 変数 in オブジェクト do 処理 end doは省略可能. #例 sum = 0 for i in 1..5 sum = sum + i end print sum,"\n" 「..」や「...」は範囲オブジェクトである. オブジェクトを配列にした場合の例を載せる. names = ["aa" , "bb" , "cc" , "dd"] for name in names print name,"\n" end 配列の中から1つずつ要素を取り出して、それぞれを表示する. while文 while 条件 do 処理 end ### 例 1から10までの数を順番に表示する i = 1 while i = 10 print i, "\n" i = i + 1 end timesメソッド 回数が決まっているときはこっちが楽. 繰り返す回数.times do 処理 end 条件分岐 if文 if 条件 then 文 end if 条件1 then 文1 elsif 条件2 then 文2 else 文3 end ファイル入出力 IOクラスのサブクラスであるFileクラスで行える. Fileクラスにはファイルの削除やファイルの属性変更など,ファイルシステムに特化した機能が実装されているが, 基本的な入出力操作はIOクラスから受け継いだメソッドを使う。 ファイルを開いて新しいFileオブジェクトを得るには, openメソッド,またはFile.openメソッドを使う。 io = open(file , mode) io = File.opne(file , mode) modeには以下のモードを指定する. モード 意味 "r" 読み込み専用でファイルを開く "r+" 読み込み / 書き込み用としてファイルを開く "w" 書き込み専用でファイルを開く.ファイルがなければ新たに作成する.またすでに存在する場合には,ファイルサイズを0にする. "w" 読み込み / 書き込み用,その他は"w"と同じ "a" 追加書き込み専用でファイルを開く,ファイルがなければ新たに作成する "a+" 読み込み / 追加書き込み用としてファイルを開く.ファイルがなければ新たに作成する. 算術演算 演算子 演算 + 加算 - 減算 * 乗算 / 除算 % 剰余 ** べき乗 IntegerオブジェクトとFloatオブジェクトを計算した結果はFloatオブジェクトになる. 割り算 数値オブジェクトには,/と%の他にも割り算に関するメソッドがある. x.divmod(y) xをyで割ったときの商と余りを,配列にして返す. Mathモジュール 三角関数や対数関数などの数学っぽいやつの演算で使うモジュール. Math.sqrt(2) のようにモジュール名を明示的に指定する方法と, include Math でインクルードする方法がある. #例 f = 2 p Math.sqrt(f) include Math # Mathモジュールのインクルード p sqrt(f) Mathモジュールで提供されるメソッドで,よく使いそうなメソッド メソッド名 意味 cos(x) 余弦関数 sin(x) 正弦関数 exp(x) 指数関数 log(x) 底をeとする対数 log10(x) 底を10とする対数 lox2(x) 底を2とする対数 sqrt(x) 平方根 Mathモジュールが提供する定数 定数名 意味 PI 円周率 E 自然対数の底e 複素数 require "complex" # Ruby 1.9では不要 a = Complex(3, 5) b = Complex(2, 4) p a*b # = Complex(-14, 22) 実部と虚部を取り出すには,Complex#real,Complex#image p a.real p a.image 配列 配列の作り方 nums = [1, 2, 3, 4, 5] strs = ["a", "b", "c", "d"] 他には,Arraw.newを使う. a = Array.new p a #= [] a = Array.new(5) p a #= [nil, nil, nil, nil, nil] a = Array.new(5, 0) p a #= [0, 0, 0, 0, 0] 要素が文字列で空白を含まないなら,%wを使える. lang = %w(Ruby Perl Python Scheme Pike REBOL) p lang #= ["Ruby", "Perl", "Python", "Scheme", "Pike", "REBOL"] インデックスの使い方 配列にインデックスを指定することで,要素を取り出せる. a[n] 18. 18.9 多重代入 メソッドから複数の返り値を得る。 def hogehoge() ... return x, y, z end このメソッドを使う際に, a, b, c = hogehoge() とすると, a = x, b = y, c = zとなる。
https://w.atwiki.jp/kenichiro/pages/34.html
行列掛け算法による最短距離の計算をするプログラム。 #一行に"元のnode 行き先のnode length"としているファイルを読み込み #そこから行列掛け算法を用いてノード間最短距離を求める class Times_matrix def initialize # nodeに番号をふるhash @node = Hash.new # ノード間の距離行列 @matrix = Array.new File.open(ARGV[0]) do |file| i = 0 # ファイルからのノード間距離の読み込み while text = file.gets do graph = text.split(" ") if @node[graph[0]] == nil then @node[graph[0]] = i i += 1 end if @node[graph[1]] == nil then @node[graph[1]] = i i += 1 end from = @node[graph[0]] to = @node[graph[1]] @matrix[from] = Array.new if @matrix[from] == nil @matrix[from][to] = graph[2].to_i end #繋がっていないノード間をinfinityにする @node.length.times do |i| @matrix[i][i] = 0 @node.length.times do |j| @matrix[i][j] = 1/0.0 if @matrix[i][j] == nil end end end end def calculate # 掛け算の反復回数 n = @node.length - 1 n.times{one_step} end # 行列掛け算法 def one_step new_matrix = Array.new n = @node.length n.times do |i| new_matrix[i] = Array.new n.times do |j| path = Array.new n.times do |k| l = @matrix[i][k] + @matrix[k][j] path.push l end min_l = 1/0.0 # 最小のpathを選ぶ path.each{|l| min_l = l if min_l = l} new_matrix[i][j] = min_l end end @matrix = new_matrix end # ノード間の最短距離を表示 def print_min n = @node.length n.times do |i| from = @node.index(i) n.times do |j| to = @node.index(j) next if i == j print "#{from}から#{to}への最短距離は#{@matrix[i][j]}\n" end end end end a = Times_matrix.new a.calculate a.print_min 因数で与えるファイルは 元のノード 行き先のノード エッジの長さ をスペース区切りで一行ずつ描いておく。 例えばこんな感じ a b 1 a c 3 a d 6 b c 1 c b 5 c d 1 d a 1 d c 5 実行すると次のようになる aからbへの最短距離は1 aからcへの最短距離は2 aからdへの最短距離は3 bからaへの最短距離は3 bからcへの最短距離は1 bからdへの最短距離は2 cからaへの最短距離は2 cからbへの最短距離は3 cからdへの最短距離は1 dからaへの最短距離は1 dからbへの最短距離は2 dからcへの最短距離は3